package com.hc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hc.entity.QcEquipmentRecord;
import com.hc.model.*;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author LiuZhiHao
 * @date 2019/8/28 13:48
 * 描述:
 **/
public interface QcEquipmentRecordService extends IService<QcEquipmentRecord> {

    void saveQcEquipmentRecord(QcEquipmentRecordModel qcEquipmentRecordModel);

    List<QcRecordStatus> getinspectionStatus(QcRecordStatusModel qcRecordStatusModel);

    List<QcRecordStatus> getWorkStatus(QcRecordStatusModel qcRecordStatusModel);

    QcEquipmentRecord getWorkbenchOperationBatch(String eqId, String workType,String date);

    List<QcEquipmentRecordModel> findEqDeatil(QcRecordStatusModel qcRecordStatusModel);


    /**
     * 获取冰箱每日质控报表数据
     * @param date
     * @param userId
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryDayForBX(String date,String userId);

    /**
     * 获取冰箱每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryMonthForBX(int eqId, String startTime, String endTime);


    /**
     * 获取培养箱每日质控报表数据
     * @param date
     * @param userId
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryDayForPYXNew(String date,String userId);


    /**
     * 获取培养箱每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryMonthForPYX(int eqId, String startTime, String endTime);

    /**
     * 获取显微镜每日质控报表数据
     * @param date
     * @param userId
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryDayForXWJ(String date,String userId);

    /**
     *获取显微镜每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryMonthForXWJ(int eqId, String startTime, String endTime);

    /**
     * 获取离心机或工作站每日质控报表数据
     * @param date
     * @param userId
     * @param classifyId
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryDayForLXJOrGZZ(String date,String userId,String classifyId);

    /**
     * 获取离心机或工作站每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryMonthForLXJOrGZZ(int eqId, String startTime, String endTime);

    /**
     * 获取胚胎库每日质控报表数据
     * @param date
     * @param userId
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryDayForPTK(String date,String userId);

    /**
     * 获取胚胎库每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryMonthForPTK(int eqId, String startTime, String endTime);

    /**
     * 获取环境每日质控报表数据
     * @param date
     * @param userId
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryDayForHJ(String date,String userId);

    /**
     * 获取环境每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<QualityControlReportList> getQualityControlReportEveryMonthForHJ(int eqId, String startTime, String endTime);

    /**
     * 获取工作台每日质控报表数据
     * @param date
     * @param userId
     * @return
     */
    List<WorkbenchModel> getWorkbenchModelEveryDayForGZT(String date,String userId);

    /**
     * 获取工作台每月质控报表数据
     * @param eqId
     * @param startTime
     * @param endTime
     * @return
     */
    List<WorkbenchModel> getWorkbenchModelEveryMonthForGZT(int eqId, String startTime, String endTime);

    /**
     * 生成指定设置指定时间内的签章记录
     * @param startTime
     * @param endTime
     */
    void addDigitalSignature(String startTime,String endTime);

    /**
     * 生成工作台指定设备指定时间内的签章记录
     * @param eqId
     * @param startTime
     * @param endTime
     */
    void addDigitalSignatureForGZT(int eqId,String startTime,String endTime);


}
